package com.itheima.d12_api_integer;

import java.util.ArrayList;

/*
    包装类
        包装类就是把基本类型的数据包装成对象。

    自动装箱：基本数据类型可以自动转换为包装类型。
    自动拆箱：包装类型可以自动转换为基本数据类型。

    包装类的其他常见操作
        可以把基本类型的数据转换成字符串类型。
        public static String toString(double d)
        public String toString()

        可以把字符串类型的数值转换成数值本身对应的数据类型。
        public static int parseInt(String s)
        public static Integer valueOf(String s)
 */
public class Test {
    public static void main(String[] args) {
        //构造器
        Integer i1 = new Integer(18);
        System.out.println(i1 instanceof Integer);
        //valueOf
        Integer i2 = Integer.valueOf(21);
        System.out.println(i2 instanceof Integer);
        //自动装箱 可以把基本数据类型转换为包装类型
        Integer i3 = 30;
        System.out.println(i3 instanceof Integer);
        //自动拆箱 可以自动把包装类型转换为基本数据类型
        int i4 = i3;
        System.out.println(i4);
        //泛型不支持基本数据类型，但可以使用对应包装类
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        int i5 = list.get(0);

        int i6 = 100;
        String s1 = i6+"";

        String s2 = Integer.toString(99);
        System.out.println(s2 + 1);

        String s3 = i3.toString();
        System.out.println(s3+1);
        System.out.println("------------------------------");
        //字符串转化为对应的数值类型

//        int i7 = Integer.parseInt(100);
//        System.out.println(i7);

        int i8 = Integer.valueOf(200);
        System.out.println(i8);
        //扩展
        Double d1 = Double.valueOf(2.5);
        double d2 = Double.parseDouble("3.5");
        boolean b1 = Boolean.parseBoolean("true");

    }
}
